home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 45
/
Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso
/
Aminet
/
game
/
role
/
ldmud-3.2-bin.lha
/
mud
/
doc
/
applied
/
init
< prev
next >
Wrap
Text File
|
2001-04-06
|
2KB
|
55 lines
SYNOPSIS
void init()
DESCRIPTION
The main purpose of this function is to set up the
add_actions() of an object. Therefore init() will always be
called when an object moves near another object and one or
both of them are marked as living.
The way init() will be invoked is determined in the following
manner:
If the object O that moves is marked as living then first call
init() of the destination object D with this_player() set to O.
Then apply the two following rules for each object C inside D:
If C is marked as living then call O->init() with
this_player() set to C.
If O is marked as living then call C->init() with
this_player() set to O.
Finally, if D is marked as living then call O->init(), with
this_player() set to D.
With 3.2.1, the actual move handling is part of the object
library, so a given installation may implement any other
scheme of calling init(), therefore rendering the following
example almost useless.
EXAMPLE
Lets say we have a object structure of living (l1 and l2) and
non living objects (n1 and n2) as the following:
l1
n1
l2
n2
If we now move another living object l3 into l1, the call
suequence of the init() functions looks like this:
l1->init() first init() of the destination will be called
n1->init() now iterate throw the inventory of the destination
l3->init()
l2->init()
n2->init()
l3->init() and finally call init() of the object that has
been moved
SEE ALSO
add_action(E), efun308(E), environment(E), move_object(E),
hooks(C)